import { useUserStore } from '@/stores'
import { createRouter, createWebHistory } from 'vue-router'
import nProgress from 'nprogress'
import 'nprogress/nprogress.css'
const router = createRouter({
  history: createWebHistory(import.meta.env.BASE_URL),
  routes: [
    {
      path:'/login',
      component:()=>import('@/views/Login/index.vue'),
      meta: { title:"登录"},
    },
    {
      path:'/register',
      component:()=>import('@/views/Register/index.vue'),
      meta: { title:"注册"}
    }, 
    {
      path:'/',
      component:()=>import('@/views/Layout/index.vue'),
      redirect:'/home',
      children:[
        {path:'/home',component:()=>import('@/views/Home/index.vue'), 
          meta: { title:"首页"}
        },
        {path:'/article',component:()=>import('@/views/Article/index.vue'),
          meta: { title:"健康百科"}},
        {path:'/notify',component:()=>import('@/views/Notify/index.vue'),
          meta: { title:"消息中心"}},
        {path:'/user',component:()=>import('@/views/User/index.vue'),
          meta: { title:"我的"}}
      ]
    },
    {
      path:'/user/patient',
      component:()=>import('@/views/User/patientPage.vue'),
      meta: { title:"家庭档案"}
    },
    {
      path:'/consult/fast',
      component:()=>import('@/views/Consult/ConsultFast.vue'),
      meta:{title:'极速问诊'}
    },
    {
      path:'/consult/dep',
      component:()=>import('@/views/Consult/ConsultDep.vue'),
      meta:{title:'选择科室'}
    },
    {
      path:'/consult/illness',
      component:()=>import('@/views/Consult/ConsultIllness.vue'),
      meta:{title:'病情描述'}
    },
    {
      path:'/consult/pay',
      component:()=>import('@/views/Consult/ConsultPay.vue'),
      meta:{title:'问诊支付'}
    },
    {
      path:'/room',
      component:()=>import('@/views/Room/index.vue'),
      meta:{title:'问诊室'},
      beforeEnter:(to)=>{
         if(to.query.payResult==='false')  return '/user/consult'
      }
    },
    {
      path:'/user/consult',
      component:()=>import('@/views/User/ConsultPage.vue'),
      meta: { title:"问诊记录"}
    },
    {
      path:'/user/consult/:id',
      component:()=>import('@/views/User/ConsultDetail.vue'),
      meta: { title:"问诊详情"}
    },
    {
      path: '/order/pay',
      component: () => import('@/views/Order/OrderPay.vue'),
      meta: { title: '药品支付' }
    },
    {
      path: '/order/pay/result',
      component: () => import('@/views/Order/OrderPayResult.vue'),
      meta: { title: '药品支付结果' }
    },
    {
      path: '/order/:id',
      component: () => import('@/views/Order/OrderDetail.vue'),
      meta: { title: '药品订单详情' }
    },
    {
      path: '/order/logistics/:id',
      component: () => import('@/views/Order/OrderLogistics.vue'),
      meta: { title: '药品订单物流' }
    },
    {
      path: '/login/callback',
      component: () => import('@/views/Login/LoginCallback.vue'),
      meta: { title: '第三方登录' }
    }
  ]
})

//路由访问权限控制
router.beforeEach((to)=>{
  nProgress.start()
    //如果没有token并且不是白名单就跳转到登录页面
  const WHILEPAGE=['/login','/register','/login/callback']
  const store =useUserStore()
  if(!store.user?.token && !WHILEPAGE.includes(to.path)) return '/login'
})


nProgress.configure({ showSpinner: false })
//路由后置守卫
router.afterEach((to)=>{
  nProgress.done()
  //修改网页标题
  document.title = `${to.meta.title||''}-优医问诊`
})

export default router
